const sequelize = require('../db')
const { DataTypes } = require('sequelize')
// const public = require('./public')

//创建一个模型对象
const Comment = sequelize.define(
  'Comment',
  {
    content: {
      type: DataTypes.STRING,
      allowNull: false
    },
    user_id: {
      type: DataTypes.INTEGER,
      allowNull: false
    },
    // 根据数据库自己生成id，进行关联就可以了
    // blog_id: {
    //   type: DataTypes.INTEGER,
    //   allowNull: false
    // },
    // 父评论的id（被回复的评论）
    parent_id: {
      type: DataTypes.INTEGER
    },
    // 根评论的id（最顶级的评论）
    root_parent_id: {
      type: DataTypes.INTEGER
    },
    // 本评论下的子评论
    child: {
      type: DataTypes.STRING,
      get() {
        if (!this.getDataValue('child')) return
        return this.getDataValue('child').split(',')
      },
      set(value) {
        return this.setDataValue('child', value.join(','))
      }
    }
  },
  {
    createdAt: false,
    updatedAt: false,
    freezeTableName: true, // 不会在数据库表明加s
    paranoid: true //从此以后，该表的数据不会真正的删除，而是增加一列deletedAt，记录删除的时间
  }
)

module.exports = Comment
